<?php

//vpis novega uporabnika
function login($ime, $geslo, $email){
    $file = "uporabniki.xml";

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    //get document element
    $root = $xml->documentElement;
    $uID = 1; //stevilo id-jev uporabnikov

    foreach ($root->childNodes as $uporabnik){
        $uID++;
    }

    //add node
    $node = $root->childNodes->item($uID);

    //uporabnikID
    $id = $xml->createElement("uporabnikID");
    $idText = $xml->createTextNode($uID);
    $id->appendChild($idText);

    //uporabniskoIme
    $uIme = $xml->createElement("uporabniskoIme");
    $imeText = $xml->createTextNode($ime);
    $uIme->appendChild($imeText);

    //geslo
    $uGeslo = $xml->createElement("geslo");
    $gesloText = $xml->createTextNode($geslo);
    $uGeslo->appendChild($gesloText);

    //email
    $uEmail = $xml->createElement("email");
    $emailText = $xml->createTextNode($email);
    $uEmail->appendChild($emailText);

    //uporabnik
    $uporabnik = $xml->createElement("uporabnik");
    $uporabnik->appendChild($id);
    $uporabnik->appendChild($uIme);
    $uporabnik->appendChild($uGeslo);
    $uporabnik->appendChild($uEmail);

    $root->insertBefore($uporabnik, $node);

    $xml->save($file) or die("Cannot write string to file");

}

//vpis nove naprave-> idNaprave (tudi k uporaniku) in imeNaprave
function vpisNaprave($proizvajalec,$imeNaprave,$uporabnikID){
    $file1 = "uporabniki.xml";
    $file2 = "naprave.xml";

    $xml2 = new DOMDocument();
    $xml2->formatOutput = true;
    $xml2->preserveWhiteSpace = false;
    $xml2->load($file2) or die("Cannot open file");

    $xml1 = new DOMDocument();
    $xml1->formatOutput = true;
    $xml1->preserveWhiteSpace = false;
    $xml1->load($file1) or die("Cannot open file");

    //get root element
    $root1 = $xml1->getElementsByTagName("uporabnik"); //uporabniki
    $root2 = $xml2->getElementsByTagName("proizvajalec"); //gadgeti

    //get id naprave
    $idNaprava = 1;
    foreach ($root2 as $a){
        $naprave = $a->getElementsByTagName("naprava");
        foreach ($naprave as $naprava){
            $idNaprava++;
        }
    }

    //dodaj ime naprave in id
    $x=false;
    foreach ($root2 as $a){
        $proIme = $a->getElementsByTagName("proizvajalecIme");
        if($proIme->item(0)->nodeValue == strtolower($proizvajalec)){
            $x=true;
            $napID = $xml2->createElement("napravaID");
            $napIDText = $xml2->createTextNode($idNaprava);
            $napID->appendChild($napIDText);
            	
            $nap = $xml2->createElement("imeNaprave");
            $napText = $xml2->createTextNode($imeNaprave);
            $nap->appendChild($napText);
            	
            $f = $xml2->createElement("forum"); //na novo dodano

            $naprav = $xml2->createElement("naprava");
            $naprav->appendChild($napID);
            $naprav->appendChild($nap);
            $naprav->appendChild($f);
            	
            $a->appendChild($naprav);
        }
    }
    //proizvajalec se ni vnesen
    if($x==false){
        $napID = $xml2->createElement("napravaID");
        $napIDText = $xml2->createTextNode($idNaprava);
        $napID->appendChild($napIDText);
        	
        $nap = $xml2->createElement("imeNaprave");
        $napText = $xml2->createTextNode($imeNaprave);
        $nap->appendChild($napText);
        	
        $naprav = $xml2->createElement("naprava");
        $naprav->appendChild($napID);
        $naprav->appendChild($nap);

        $proIme = $xml2->createElement("proizvajalecIme");
        $proImeText = $xml2->createTextNode(strtolower($proizvajalec));
        $proIme->appendChild($proImeText);

        $a = $xml2->createElement("proizvajalec");
        $a->appendChild($proIme);
        $a->appendChild($naprav);

        $f = $root2->length; //stevilo proizvajalcev
        $fnode = $root2->item($f-1); //zadnji vozel za proizvajalec
        $fx = $fnode->parentNode;
        $fnode = $root2->item($f);
        $fx->insertBefore($a,$fnode);

    }
    $xml2->save($file2) or die("Cannot write string to file");


    //vnos naprave v uporabnik Xml
    foreach ($root1 as $a){
        $up = $a->getElementsByTagName("uporabnikID");
        if($up->item(0)->nodeValue == $uporabnikID){
            $id = $xml1->createElement("napravaID");
            $idText = $xml1->createTextNode($idNaprava);
            $id->appendChild($idText);
            	
            $a->appendChild($id);
        }
    }
    $xml1->save($file1) or die("Cannot write string to file");
}

//vpis tehnicnih lastnosti (vpisejo se lahko samo enkrat)
function vpisLastnosti($napravaID,$teza,$dimenzije,$os,$spomin){
    $file = "naprave.xml";

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    //$xpath = new DOMXPath($xml);
    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        //echo $naprava->nodeValue;
        if($naprava->nodeValue == $napravaID){
            $sib = $naprava->nextSibling; //ime naprave
            $sib=$sib->nextSibling;
            //ni taga lastnosti
            if($sib == NULL || $sib->nodeName != "lastnosti"){
                $t = $xml->createElement("teza");
                $tText = $xml->createTextNode($teza);
                $t->appendChild($tText);
                $d = $xml->createElement("dimenzije");
                $dText = $xml->createTextNode($dimenzije);
                $d->appendChild($dText);
                $o = $xml->createElement("os");
                $oText = $xml->createTextNode($os);
                $o->appendChild($oText);
                $s = $xml->createElement("spomin");
                $sText = $xml->createTextNode($spomin);
                $s->appendChild($sText);

                $lastnost = $xml->createElement("lastnosti");
                $lastnost->appendChild($t);
                $lastnost->appendChild($d);
                $lastnost->appendChild($o);
                $lastnost->appendChild($s);

                //stars od iskanega vozlisca
                $par = $naprava->parentNode;
                $par->insertBefore($lastnost,$sib);

                $xml->save($file) or die("Cannot write string to file");
            }
            else
                return "Lastnosti ze vpisane";
            	
        }
    }
}

//$slika=url do slike
function vpisSlike($slika,$napravaID){
    $file = "naprave.xml";
    $sId = 0;

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        if($naprava->nodeValue == $napravaID){
            $sib = $naprava->nextSibling; //ime naprave
            $sib=$sib->nextSibling;
            	
            	
            if($sib->nodeName == "lastnosti"){
                $sib=$sib->nextSibling; //lastnosti
            }
            if($sib->nodeName == "slika"){
                while ($sib->nodeName != "slika"){
                    $sib=$sib->nextSibling;
                    $sId++;
                }
            }
            /*$sli = fopen($slika, 'r');
             rename($slika, "/slike/".$sId.".jpg");
            fclose($sli);*/
            	
            $s = $xml->createElement("slika");
            //$sText = $xml->createTextNode("/slike/".$sId.".jpg");
            $sText = $xml->createTextNode($slika);
            $s->appendChild($sText);
            	
            //stars od iskanega vozlisca
            $par = $naprava->parentNode;
            $par->insertBefore($s,$sib);
            	
            $xml->save($file) or die("Cannot write string to file");
        }
    }
}

//vpisi preizkus
function vpisiPreizkus($napravaID,$preizkus){
    $file = "naprave.xml";

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        if($naprava->nodeValue == $napravaID){
            $sib = $naprava->nextSibling; //ime naprave
            $sib=$sib->nextSibling;


            if($sib->nodeName == "lastnosti"){
                $sib=$sib->nextSibling; //lastnosti
            }
            if($sib->nodeName == "slika"){
                while ($sib->nodeName != "slika"){
                    $sib=$sib->nextSibling;
                }
            }
            if($sib->nodeName == "preizkus"){
                while ($sib->nodeName != "preizkus"){
                    $sib=$sib->nextSibling;
                }
            }
            $p = $xml->createElement("preizkus");
            $pText = $xml->createTextNode($preizkus);
            $p->appendChild($pText);
            	
            $par = $naprava->parentNode;
            $par->insertBefore($p,$sib);

            $xml->save($file) or die("Cannot write string to file");
        }
    }
}

//vpisi komentar
function vpisiKomentar($uporabnikID,$komentar,$napravaID){
    $file = "naprave.xml";

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        if($naprava->nodeValue == $napravaID){
            $sib = $naprava->nextSibling; //ime naprave
            $sib=$sib->nextSibling;


            if($sib->nodeName == "lastnosti"){
                $sib=$sib->nextSibling; //lastnosti
            }
            if($sib->nodeName == "slika"){
                while ($sib->nodeName != "slika"){
                    $sib=$sib->nextSibling;
                }
            }
            if($sib->nodeName == "preizkus"){
                while ($sib->nodeName == "preizkus"){
                    $sib=$sib->nextSibling;
                }
            }
            	

            $p = $xml->createElement("kUporabnikID");
            $pText = $xml->createTextNode($uporabnikID);
            $p->appendChild($pText);
            	
            $k = $xml->createElement("kKomentar");
            $kText = $xml->createTextNode($komentar);
            $k->appendChild($kText);
            	
            $kom = $xml->createElement("komentar");
            $kom->appendChild($p);
            $kom->appendChild($k);
            	
            $par = $naprava->parentNode;
            $par->insertBefore($kom,$sib);
            	
            $xml->save($file) or die("Cannot write string to file");

        }
    }
}

//dodamo temo v forum -> vsaka tema mora imeti drugacen naslov(tukaj ne preverja) ali pa je treba
//naslov napisat nekako: id_naslovTeme in potem sparsat
function vpisiTemo($napravaID,$naslovTeme){
    $file = "naprave.xml";
    $m = false;

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        if($naprava->nodeValue == $napravaID){
            $par = $naprava->parentNode; //doticna naprava(node)
            	
            $forum = $par->getElementsByTagName("forum");
            foreach ($forum as $fnode){

                $re = $fnode->childNodes->item(0);

                $p = $xml->createElement("temaNaslov");
                $pText = $xml->createTextNode($naslovTeme);
                $p->appendChild($pText);

                $tema = $xml->createElement("tema");
                $tema->appendChild($p);

                $fnode->insertBefore($tema,$re);

                $xml->save($file) or die("Cannot write string to file");
            }
        }
    }
}

//dodaj komentar v temo foruma -> klicat se mora sele po dodani temi v forum!!!
//V tej funkciji ni preverjanja, ce je ze tema narejena!!!
function vpisiKomentarForum($napravaID,$naslovTeme,$uporabnikID,$komentar){
    $file = "naprave.xml";

    $xml = new DOMDocument();
    $xml->formatOutput = true;
    $xml->preserveWhiteSpace = false;
    $xml->load($file) or die("Cannot open file");

    $naprave = $xml->getElementsByTagName("napravaID");
    foreach ($naprave as $naprava){
        if($naprava->nodeValue == $napravaID){
            $par = $naprava->parentNode; //doticna naprava(node)
            $forum = $par->getElementsByTagName("forum");
            foreach ($forum as $f){ //samo en tag
                $teme = $f->getElementsByTagName("tema");
                foreach ($teme as $tema){
                    $i = $tema->childNodes->item(0); //naslov teme
                    $a = $tema->childNodes->item(1); //najnovejski komentar
                    if($i->nodeValue == $naslovTeme){

                        $p = $xml->createElement("tUporabnikID");
                        $pText = $xml->createTextNode($uporabnikID);
                        $p->appendChild($pText);

                        $t = $xml->createElement("tkomentar");
                        $tText = $xml->createTextNode($komentar);
                        $t->appendChild($tText);

                        $komentarji = $xml->createElement("temaKomentarji");
                        $komentarji->appendChild($p);
                        $komentarji->appendChild($t);

                        $tema->insertBefore($komentarji,$a);

                        $xml->save($file) or die("Cannot write string to file");

                    }
                }
            }
        }
    }
    	
    	
}

//login("marusa", "kolo", "lala@gmail.com");
//vpisNaprave("apple","iMac","2");
//vpisLastnosti("3","250g","15x15x15cm","android 2.1","2GB");
//vpisSlike("http://th02.deviantart.net/fs70/PRE/f/2011/333/f/8/nyt_jo_korvaan_kuiskaa_toiveesi_by_leppu-d4ho421.jpg","3");
//vpisiPreizkus("2","odlicno");
//vpisiKomentar("2","balnla","2");
//vpisiTemo("2","Pomoc");
//vpisiKomentarForum("2","Pomoc","2","Emmm....");

?>